pred_flounder_sad <- list ()
pred_flounder_ben <- list ()
pred_cod_sad <- list ()
pred_cod_ben <- list ()
coef_sad <- list ()
coef_ben <- list ()
res_sad <- list ()
res_ben <- list ()
random_sad <- list ()
random_ben <- list ()
range_sad <- list ()
range_ben <- list ()
for (i in unique (d$ group)) {
dd <- filter (d, group == i)
if (i == "flounder" ){
weigths <- dd$ f_weight
} else if (i == "small cod" ){
weigths <- dd$ sc_weight
} else if (i == "large cod" ){
weigths <- dd$ lc_weight
}
mesh <- make_mesh (dd,
xy_cols = c ("X" , "Y" ),
cutoff = 5 )
ggplot () +
inlabru:: gg (mesh$ mesh) +
coord_fixed () +
geom_point (aes (X, Y), data = dd, alpha = 0.2 , size = 0.5 ) +
labs (x = "Easting (km)" , y = "Northing (km)" )
ggsave (paste0 (home, "/figures/supp/mesh_" , i, ".pdf" ), width = 17 , height = 17 , units = "cm" )
# Saduria model
m_sad <- sdmTMB (saduria_rel_weight ~ 0 + fyear + fquarter + depth_sc + oxygen_sc + pred_length_cm_sc +
small_cod_density_sc* density_saduria_sc +
flounder_density_sc* density_saduria_sc,
data = dd,
mesh = mesh,
family = tweedie (),
weights = weigths,
spatiotemporal = "iid" ,
spatial = "on" ,
time = "year" )
print (i)
sanity (m_sad)
print (m_sad)
# Benthic model
if (unique (dd$ group) %in% c ("large cod" , "small cod" )) {
m_ben <- sdmTMB (benthic_rel_weight ~ 0 + fyear + fquarter + depth_sc + pred_length_cm_sc +
small_cod_density_sc* oxygen_sc + flounder_density_sc* oxygen_sc,
data = dd,
mesh = mesh,
family = tweedie (),
weights = weigths,
spatiotemporal = "iid" ,
spatial = "off" ,
time = "year" )
print (i)
sanity (m_ben)
print (m_ben)
} else {
m_ben <- sdmTMB (benthic_rel_weight ~ 0 + fyear + fquarter + depth_sc + pred_length_cm_sc +
small_cod_density_sc* oxygen_sc + flounder_density_sc* oxygen_sc,
data = dd,
mesh = mesh,
family = tweedie (),
weights = weigths,
spatiotemporal = "iid" ,
spatial = "on" ,
time = "year" )
print (i)
sanity (m_ben)
print (m_ben)
}
# Spatial and spatiotemporal random effects
d_haul <- dd |>
distinct (haul_id, .keep_all = TRUE )
preds_sad <- predict (m_sad, newdata = d_haul)
preds_ben <- predict (m_ben, newdata = d_haul)
random_sad[[i]] <- preds_sad
random_ben[[i]] <- preds_ben
# Residuals
samps <- sdmTMBextra:: predict_mle_mcmc (m_sad, mcmc_iter = 401 , mcmc_warmup = 400 )
mcmc_res <- residuals (m_sad, type = "mle-mcmc" , mcmc_samples = samps)
dd$ res <- as.vector (mcmc_res)
res_sad[[i]] <- dd
samps <- sdmTMBextra:: predict_mle_mcmc (m_ben, mcmc_iter = 401 , mcmc_warmup = 400 )
mcmc_res <- residuals (m_ben, type = "mle-mcmc" , mcmc_samples = samps)
dd$ res <- as.vector (mcmc_res)
res_ben[[i]] <- dd
# Ranges
range_sad[[i]] <- tidy (m_sad, effects = "ran_pars" ) |> filter (term == "range" ) |> mutate (group = i, model = "saduria" )
range_ben[[i]] <- tidy (m_ben, effects = "ran_pars" ) |> filter (term == "range" ) |> mutate (group = i, model = "benthos" )
# Conditional effects: flounder
nd_flounder <- data.frame (expand_grid (
density_saduria_sc = c (quantile (d$ density_saduria_sc, probs = 0.05 ),
mean (d$ density_saduria_sc),
quantile (d$ density_saduria_sc, probs = 0.95 )),
flounder_density_sc = seq (quantile (dd$ flounder_density_sc, probs = 0.05 ),
quantile (dd$ flounder_density_sc, probs = 0.95 ),
length.out = 50 ))) |>
mutate (year = 2020 ,
fyear = as.factor (2020 ),
fquarter = as.factor (1 ),
pred_length_cm_sc = 0 ,
oxygen_sc = 0 ,
depth_sc = 0 ,
small_cod_density_sc = 0 )
preds_flounder_sad <- predict (m_sad, newdata = nd_flounder, re_form = NA , re_form_iid = NA , se_fit = TRUE )
preds_flounder_ben <- predict (m_ben, newdata = nd_flounder, re_form = NA , re_form_iid = NA , se_fit = TRUE )
pred_flounder_sad[[i]] <- preds_flounder_sad |> mutate (group = i, xvar = "flounder" )
pred_flounder_ben[[i]] <- preds_flounder_ben |> mutate (group = i, xvar = "flounder" )
# Conditional effects: cod
nd_cod <- data.frame (expand_grid (
density_saduria_sc = c (quantile (d$ density_saduria_sc, probs = 0.05 ),
quantile (d$ density_saduria_sc, probs = 0.95 )),
small_cod_density_sc = seq (quantile (dd$ small_cod_density_sc, probs = 0.05 ),
quantile (dd$ small_cod_density_sc, probs = 0.95 ),
length.out = 50 ))) |>
mutate (year = 2020 ,
fyear = as.factor (2020 ),
fquarter = as.factor (1 ),
pred_length_cm_sc = 0 ,
oxygen_sc = 0 ,
depth_sc = 0 ,
flounder_density_sc = 0 ) #
preds_cod_sad <- predict (m_sad, newdata = nd_cod, re_form = NA , re_form_iid = NA , se_fit = TRUE )
preds_cod_ben <- predict (m_ben, newdata = nd_cod, re_form = NA , re_form_iid = NA , se_fit = TRUE )
pred_cod_sad[[i]] <- preds_cod_sad |> mutate (group = i, xvar = "cod" )
pred_cod_ben[[i]] <- preds_cod_ben |> mutate (group = i, xvar = "cod" )
# Coefficients
coefs_sad <- bind_rows (tidy (m_sad, effects = "fixed" , conf.int = TRUE )) |>
mutate (species = "Cod (m)" ,
response = "Saduria" ,
sig = ifelse (estimate > 0 & conf.low > 0 , "Y" , "N" ),
sig = ifelse (estimate < 0 & conf.high < 0 , "Y" , sig))
coefs_ben <- bind_rows (tidy (m_ben, effects = "fixed" , conf.int = TRUE )) |>
mutate (species = "Cod (m)" ,
response = "Saduria" ,
sig = ifelse (estimate > 0 & conf.low > 0 , "Y" , "N" ),
sig = ifelse (estimate < 0 & conf.high < 0 , "Y" , sig))
coef_sad[[i]] <- coefs_sad |> mutate (group = i)
coef_ben[[i]] <- coefs_ben |> mutate (group = i)
}
filter: removed 5,574 rows (60%), 3,721 rows remaining
Loading required namespace: INLA
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: saduria_rel_weight ~ 0 + fyear + fquarter + depth_sc + oxygen_sc +
Formula: pred_length_cm_sc + small_cod_density_sc * density_saduria_sc +
Formula: flounder_density_sc * density_saduria_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -8.14 0.92
fyear2016 -10.08 0.70
fyear2017 -10.00 0.72
fyear2018 -8.84 0.81
fyear2019 -11.30 1.14
fyear2020 -9.74 0.70
fyear2021 -10.35 0.79
fyear2022 -10.80 0.82
fquarter4 -0.32 0.39
depth_sc -0.66 0.35
oxygen_sc 0.46 0.29
pred_length_cm_sc -0.69 0.09
small_cod_density_sc 0.21 0.27
density_saduria_sc 0.58 0.32
flounder_density_sc -0.57 0.28
small_cod_density_sc:density_saduria_sc 0.06 0.26
density_saduria_sc:flounder_density_sc 0.23 0.24
Dispersion parameter: 0.08
Tweedie p: 1.43
Matérn range: 17.18
Spatial SD: 2.29
Spatiotemporal IID SD: 1.81
ML criterion at convergence: -666.782
See ?tidy.sdmTMB to extract these values as a data frame.
[1] "large cod"
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: benthic_rel_weight ~ 0 + fyear + fquarter + depth_sc + pred_length_cm_sc +
Formula: small_cod_density_sc * oxygen_sc + flounder_density_sc *
Formula: oxygen_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -6.13 0.38
fyear2016 -7.00 0.25
fyear2017 -6.38 0.27
fyear2018 -6.50 0.31
fyear2019 -7.44 0.42
fyear2020 -6.42 0.27
fyear2021 -6.53 0.27
fyear2022 -6.92 0.29
fquarter4 0.78 0.14
depth_sc -0.04 0.09
pred_length_cm_sc -0.25 0.03
small_cod_density_sc -0.16 0.10
oxygen_sc 0.49 0.09
flounder_density_sc -0.06 0.10
small_cod_density_sc:oxygen_sc 0.01 0.06
oxygen_sc:flounder_density_sc -0.03 0.07
Dispersion parameter: 0.27
Tweedie p: 1.63
Matérn range: 10.62
Spatiotemporal IID SD: 1.44
ML criterion at convergence: -7028.533
See ?tidy.sdmTMB to extract these values as a data frame.
distinct: removed 3,413 rows (92%), 308 rows remaining
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.005924 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 59.24 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 89.947 seconds (Warm-up)
Chain 1: 0.232 seconds (Sampling)
Chain 1: 90.179 seconds (Total)
Chain 1:
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.005619 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 56.19 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 41.629 seconds (Warm-up)
Chain 1: 0.071 seconds (Sampling)
Chain 1: 41.7 seconds (Total)
Chain 1:
filter: removed 4 rows (80%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
filter: removed 3 rows (75%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'small_cod_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'flounder_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
filter: removed 7,572 rows (81%), 1,723 rows remaining
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: saduria_rel_weight ~ 0 + fyear + fquarter + depth_sc + oxygen_sc +
Formula: pred_length_cm_sc + small_cod_density_sc * density_saduria_sc +
Formula: flounder_density_sc * density_saduria_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -9.25 1.37
fyear2016 -10.54 1.12
fyear2017 -10.68 1.08
fyear2018 -10.94 1.48
fyear2019 -9.36 1.45
fyear2020 -10.18 1.09
fyear2021 -11.60 1.07
fyear2022 -10.63 1.11
fquarter4 -1.64 0.38
depth_sc -0.90 0.50
oxygen_sc -0.34 0.37
pred_length_cm_sc 1.13 0.08
small_cod_density_sc 0.15 0.35
density_saduria_sc 0.92 0.44
flounder_density_sc -1.23 0.34
small_cod_density_sc:density_saduria_sc -0.51 0.33
density_saduria_sc:flounder_density_sc 0.60 0.34
Dispersion parameter: 0.12
Tweedie p: 1.49
Matérn range: 22.10
Spatial SD: 3.38
Spatiotemporal IID SD: 2.64
ML criterion at convergence: -1691.122
See ?tidy.sdmTMB to extract these values as a data frame.
[1] "small cod"
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: benthic_rel_weight ~ 0 + fyear + fquarter + depth_sc + pred_length_cm_sc +
Formula: small_cod_density_sc * oxygen_sc + flounder_density_sc *
Formula: oxygen_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -5.98 0.35
fyear2016 -5.72 0.22
fyear2017 -5.52 0.21
fyear2018 -5.54 0.26
fyear2019 -5.94 0.36
fyear2020 -5.61 0.21
fyear2021 -6.03 0.20
fyear2022 -5.91 0.22
fquarter4 0.32 0.10
depth_sc -0.42 0.09
pred_length_cm_sc -0.23 0.02
small_cod_density_sc 0.03 0.09
oxygen_sc 0.15 0.09
flounder_density_sc -0.02 0.07
small_cod_density_sc:oxygen_sc -0.11 0.09
oxygen_sc:flounder_density_sc 0.02 0.08
Dispersion parameter: 0.07
Tweedie p: 1.52
Matérn range: 9.83
Spatiotemporal IID SD: 1.30
ML criterion at convergence: -11044.314
See ?tidy.sdmTMB to extract these values as a data frame.
distinct: removed 1,451 rows (84%), 272 rows remaining
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.005318 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 53.18 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 169.12 seconds (Warm-up)
Chain 1: 0.423 seconds (Sampling)
Chain 1: 169.543 seconds (Total)
Chain 1:
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.005673 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 56.73 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 42.182 seconds (Warm-up)
Chain 1: 0.044 seconds (Sampling)
Chain 1: 42.226 seconds (Total)
Chain 1:
filter: removed 4 rows (80%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
filter: removed 3 rows (75%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'small_cod_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'flounder_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
filter: removed 5,444 rows (59%), 3,851 rows remaining
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: saduria_rel_weight ~ 0 + fyear + fquarter + depth_sc + oxygen_sc +
Formula: pred_length_cm_sc + small_cod_density_sc * density_saduria_sc +
Formula: flounder_density_sc * density_saduria_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -7.48 1.01
fyear2016 -5.46 0.88
fyear2017 -8.23 0.85
fyear2018 -8.62 0.94
fyear2019 -6.93 1.01
fyear2020 -7.79 0.86
fyear2021 -10.31 1.26
fyear2022 -8.64 0.91
fquarter4 -1.45 0.30
depth_sc -0.55 0.27
oxygen_sc 0.06 0.26
pred_length_cm_sc 0.15 0.06
small_cod_density_sc 0.55 0.17
density_saduria_sc 0.18 0.21
flounder_density_sc -0.94 0.20
small_cod_density_sc:density_saduria_sc 0.15 0.15
density_saduria_sc:flounder_density_sc -0.25 0.20
Dispersion parameter: 0.22
Tweedie p: 1.52
Matérn range: 63.66
Spatial SD: 2.05
Spatiotemporal IID SD: 1.44
ML criterion at convergence: -1074.332
See ?tidy.sdmTMB to extract these values as a data frame.
[1] "flounder"
✔ Non-linear minimizer suggests successful convergence
✔ Hessian matrix is positive definite
✔ No extreme or very small eigenvalues detected
✔ No gradients with respect to fixed effects are >= 0.001
✔ No fixed-effect standard errors are NA
✔ No standard errors look unreasonably large
✔ No sigma parameters are < 0.01
✔ No sigma parameters are > 100
✔ Range parameter doesn't look unreasonably large
Spatiotemporal model fit by ML ['sdmTMB']
Formula: benthic_rel_weight ~ 0 + fyear + fquarter + depth_sc + pred_length_cm_sc +
Formula: small_cod_density_sc * oxygen_sc + flounder_density_sc *
Formula: oxygen_sc
Mesh: mesh (isotropic covariance)
Time column: year
Data: dd
Family: tweedie(link = 'log')
coef.est coef.se
fyear2015 -4.73 0.28
fyear2016 -4.99 0.24
fyear2017 -4.90 0.19
fyear2018 -5.37 0.22
fyear2019 -4.88 0.26
fyear2020 -4.51 0.17
fyear2021 -5.37 0.24
fyear2022 -4.99 0.19
fquarter4 0.03 0.12
depth_sc -0.48 0.10
pred_length_cm_sc -0.03 0.03
small_cod_density_sc 0.27 0.07
oxygen_sc -0.09 0.08
flounder_density_sc -0.27 0.08
small_cod_density_sc:oxygen_sc -0.11 0.05
oxygen_sc:flounder_density_sc 0.07 0.07
Dispersion parameter: 0.14
Tweedie p: 1.49
Matérn range: 14.61
Spatial SD: 0.78
Spatiotemporal IID SD: 0.63
ML criterion at convergence: -4184.678
See ?tidy.sdmTMB to extract these values as a data frame.
distinct: removed 3,590 rows (93%), 261 rows remaining
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.00587 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 58.7 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 283.961 seconds (Warm-up)
Chain 1: 1.103 seconds (Sampling)
Chain 1: 285.064 seconds (Total)
Chain 1:
SAMPLING FOR MODEL 'tmb_generic' NOW (CHAIN 1).
Chain 1:
Chain 1: Gradient evaluation took 0.008433 seconds
Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 84.33 seconds.
Chain 1: Adjust your expectations accordingly!
Chain 1:
Chain 1:
Chain 1: Iteration: 1 / 401 [ 0%] (Warmup)
Chain 1: Iteration: 40 / 401 [ 9%] (Warmup)
Chain 1: Iteration: 80 / 401 [ 19%] (Warmup)
Chain 1: Iteration: 120 / 401 [ 29%] (Warmup)
Chain 1: Iteration: 160 / 401 [ 39%] (Warmup)
Chain 1: Iteration: 200 / 401 [ 49%] (Warmup)
Chain 1: Iteration: 240 / 401 [ 59%] (Warmup)
Chain 1: Iteration: 280 / 401 [ 69%] (Warmup)
Chain 1: Iteration: 320 / 401 [ 79%] (Warmup)
Chain 1: Iteration: 360 / 401 [ 89%] (Warmup)
Chain 1: Iteration: 400 / 401 [ 99%] (Warmup)
Chain 1: Iteration: 401 / 401 [100%] (Sampling)
Chain 1:
Chain 1: Elapsed Time: 54.409 seconds (Warm-up)
Chain 1: 0.129 seconds (Sampling)
Chain 1: 54.538 seconds (Total)
Chain 1:
filter: removed 4 rows (80%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
filter: removed 4 rows (80%), one row remaining
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'model' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'small_cod_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'year' (double) with one unique value and 0% NA
new variable 'fyear' (factor) with one unique value and 0% NA
new variable 'fquarter' (factor) with one unique value and 0% NA
new variable 'pred_length_cm_sc' (double) with one unique value and 0% NA
new variable 'oxygen_sc' (double) with one unique value and 0% NA
new variable 'depth_sc' (double) with one unique value and 0% NA
new variable 'flounder_density_sc' (double) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
new variable 'xvar' (character) with one unique value and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'species' (character) with one unique value and 0% NA
new variable 'response' (character) with one unique value and 0% NA
new variable 'sig' (character) with 2 unique values and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA
mutate: new variable 'group' (character) with one unique value and 0% NA